package br.com.sgi.bean;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

import javax.faces.model.SelectItem;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Controller;

import br.com.sgi.enuns.MesEnum;
import br.com.sgi.enuns.OpcaoPesquisaEnum;
import br.com.sgi.enuns.OperacaoPesquisaEnum;
import br.com.sgi.enuns.OperadorPesquisaEnum;
import br.com.sgi.model.Igreja;
import br.com.sgi.model.Membro;
import br.com.sgi.service.IgrejaService;
import br.com.sgi.service.MembroService;
import br.com.sgi.service.VisitanteService;
import br.com.sgi.util.Constante;
import br.com.sgi.util.DateUtil;
import br.com.sgi.util.Mensagem;
import br.com.sgi.vo.MembroVo;
import br.com.sgi.vo.ParametroPesquisa;

@Scope("request")
@Controller("membroRelatorioBean")
public class MembroRelatorioBean extends BaseRelatorio {

	@Autowired
	MembroService membroService;

	@Autowired
	VisitanteService visitanteService;

	@Autowired
	private IgrejaService igrejaService;

	Map<String, String> mapOpcoesPesquisa = new HashMap<String, String>();
	Map<String, String> mapOperacoesPesquisa = new HashMap<String, String>();
	Map<String, String> mapJuncoesPesquisa = new HashMap<String, String>();

	private List<SelectItem> listaOpcoes;
	private List<SelectItem> listaOperacoes;
	private List<SelectItem> listaJuncoes;

	private List<OpcaoPesquisaEnum> listaOpcao;

	private List<ParametroPesquisa> listaParametros;

	private List<Membro> listaMembros;
	private List<Igreja> listaIgreja;
	private List<MembroVo> listaMembrosVos;
	private List<MembroVo> listaVisitantesVos;
	private List<MembroVo> listaMembrosSelecionados;

	private List<SelectItem> listaMes;

	private MembroVo membroVoSelecionado;

	private Igreja igreja;

	private boolean nome;
	private boolean dtNascimento;

	private ParametroPesquisa parametroPesquisa;
	private ParametroPesquisa parametroSelecionado;
	private boolean relTipoMembro;
	private boolean relPadrao;

	private Date dtPesquisa;

	private String titulo;
	private String status;
	private String tipoMembro;
	private String tipoRelatorio;
	private String tipoImpressao;
	private String tipoPesquisa;

	private String tipoAniversario;
	private String mes;

	private boolean exibirImprimir;

	private boolean relatorioAniversario;

	private final String TIPO_IMPRESSAO_BASICA = "B";
	private final String TIPO_IMPRESSAO_COMPLEATA = "C";
	private final String TIPO_MEMBRO = "M";
	private final String TIPO_VISITANTE = "V";
	private final String TIPO_TODOS = "T";

	/**
	 * adicionar parametros para pesquisa
	 */
	public void adicionar() {
		if (validarCampos()) {
			listaParametros.add(parametroPesquisa);
			parametroPesquisa = new ParametroPesquisa();
		}

	}

	/**
	 * adiconar menbro selecionado
	 */
	public void adicionarMembro() {
		if (!membroRepitido(listaMembrosSelecionados, membroVoSelecionado)) {
			listaMembrosSelecionados.add(membroVoSelecionado);
		} else {
			Mensagem.errorMsg("erro.MSG_02");
		}
	}

	/**
	 * lista os aniversariante da data selecionada
	 */
	public void carregarAniversarios() {
		status = "A";
		if (tipoAniversario.equals("H")) {
			getParametroPesquisa().setDtPesquisa(DateUtil.getDateNow());
			getParametroPesquisa().setOperacao("=");
			getParametroPesquisa().setOpcao("dtNascimento");
			pesquisarSimples();
		} else if (tipoAniversario.equals("D")) {
			getParametroPesquisa().setOperacao("=");
			getParametroPesquisa().setOpcao("dtNascimento");
			pesquisarSimples();
		} else if (tipoAniversario.equals("M")) {

			pesquisarAniversariosMes();
		}

	}

	public void excluir() {
		listaParametros.remove(parametroSelecionado);
	}

	public void excluirDaListaSelecionados() {
		listaMembrosSelecionados.remove(membroVoSelecionado);
	}

	public Date getDtPesquisa() {
		return dtPesquisa;
	}

	public Igreja getIgreja() {
		if (igreja == null) {
			igreja = new Igreja();
		}
		return igreja;
	}

	public List<Igreja> getListaIgreja() {
		if (listaIgreja == null) {
			listaIgreja = igrejaService.buscarIgrejasPorUsers();
		}
		return listaIgreja;
	}

	public List<SelectItem> getListaJuncoes() {
		if (listaJuncoes == null) {
			listaJuncoes = new ArrayList<SelectItem>();
			for (OperadorPesquisaEnum operador : OperadorPesquisaEnum.values()) {
				listaJuncoes.add(new SelectItem(operador.getCodigo(), operador.getDescricao()));
			}
		}
		return listaJuncoes;
	}

	public List<Membro> getListaMembros() {
		return listaMembros;
	}

	public List<MembroVo> getListaMembrosSelecionados() {
		if (listaMembrosSelecionados == null) {
			listaMembrosSelecionados = new ArrayList<MembroVo>();
		}
		return listaMembrosSelecionados;
	}

	public List<MembroVo> getListaMembrosVos() {
		return listaMembrosVos;
	}

	public List<SelectItem> getListaMes() {
		if (listaMes == null) {
			listaMes = new ArrayList<SelectItem>();
			for (MesEnum mes : MesEnum.values()) {
				listaMes.add(new SelectItem(mes.getNumero(), mes.getDescricao()));
			}
		}
		return listaMes;
	}

	public List<OpcaoPesquisaEnum> getListaOpcao() {
		// if(listaOpcao == null)
		// listaOpcao = OpcaoPesquisaEnum.values();
		return listaOpcao;
	}

	public List<SelectItem> getListaOpcoes() {
		if (listaOpcoes == null) {
			montaListaOpcoes();
		}
		listaOperacoes = null;
		return listaOpcoes;
	}

	public List<SelectItem> getListaOperacoes() {
		if (listaOperacoes == null) {
			listaOperacoes = new ArrayList<SelectItem>();

			if (parametroPesquisa.getOpcao() != null
					&& (parametroPesquisa.getOpcao()
							.equals(OpcaoPesquisaEnum.MATRICULA.getCodigo()) || parametroPesquisa
							.getOpcao().equals(OpcaoPesquisaEnum.SEXO.getCodigo()))) {
				listaOperacoes.add(new SelectItem(OperacaoPesquisaEnum.IGUAL.getCodigo(),
						OperacaoPesquisaEnum.IGUAL.getDescricao()));
			} else if (parametroPesquisa.getOpcao() != null
					&& parametroPesquisa.getOpcao().equals(OpcaoPesquisaEnum.NOME.getCodigo())) {
				listaOperacoes.add(new SelectItem(OperacaoPesquisaEnum.CONTENHA.getCodigo(),
						OperacaoPesquisaEnum.CONTENHA.getDescricao()));
				listaOperacoes.add(new SelectItem(OperacaoPesquisaEnum.COMECA_COM.getCodigo(),
						OperacaoPesquisaEnum.COMECA_COM.getDescricao()));
			} else if (parametroPesquisa.getOpcao() != null
					&& parametroPesquisa.getOpcao().equals(OpcaoPesquisaEnum.NOME.getCodigo())) {
				listaOperacoes.add(new SelectItem(OperacaoPesquisaEnum.CONTENHA.getCodigo(),
						OperacaoPesquisaEnum.CONTENHA.getDescricao()));
				listaOperacoes.add(new SelectItem(OperacaoPesquisaEnum.COMECA_COM.getCodigo(),
						OperacaoPesquisaEnum.COMECA_COM.getDescricao()));
			} else {
				for (OperacaoPesquisaEnum operador : OperacaoPesquisaEnum.values()) {
					if (!operador.getCodigo().equals(OperacaoPesquisaEnum.COMECA_COM.getCodigo())
							&& !operador.getCodigo().equals(
									OperacaoPesquisaEnum.CONTENHA.getCodigo())) {
						listaOperacoes.add(new SelectItem(operador.getCodigo(), operador
								.getDescricao()));
					}
				}
			}

		}
		return listaOperacoes;
	}

	public List<ParametroPesquisa> getListaParametros() {
		if (listaParametros == null) {
			listaParametros = new ArrayList<ParametroPesquisa>();
		}

		return listaParametros;
	}

	public List<MembroVo> getListaVisitantesVos() {
		return listaVisitantesVos;
	}

	public MembroVo getMembroVoSelecionado() {
		return membroVoSelecionado;
	}

	public String getMes() {
		return mes;
	}

	public ParametroPesquisa getParametroPesquisa() {
		if (parametroPesquisa == null) {
			parametroPesquisa = new ParametroPesquisa();
		}
		return parametroPesquisa;
	}

	public ParametroPesquisa getParametroSelecionado() {
		return parametroSelecionado;
	}

	public String getStatus() {
		return status;
	}

	public String getTipoAniversario() {
		if (tipoAniversario == null) {
			tipoAniversario = "";
		}
		return tipoAniversario;
	}

	public String getTipoImpressao() {
		return tipoImpressao;
	}

	public String getTipoMembro() {
		if (tipoMembro == null || tipoMembro.isEmpty()) {
			tipoMembro = "T";
		}
		return tipoMembro;
	}

	public String getTipoPesquisa() {
		if (tipoPesquisa == null || tipoPesquisa.isEmpty()) {
			tipoPesquisa = "B";
		}
		return tipoPesquisa;
	}

	public String getTipoRelatorio() {
		return tipoRelatorio;
	}

	public String getTitulo() {
		return titulo;
	}

	public void imprimir() {
		super.imprimir(listaMembros, Constante.RELATORIO_MEMBRO);
	}

	public void imprimirAniversarios(Map<String, Object> paramentros) {
		paramentros.put("NOMEREL", !titulo.equals("") ? titulo : "Aniversariantes");
		super.imprimir(getListaResult(), Constante.RELATORIO_ANIVERSARIO, paramentros);
	}

	/**
	 * realiza a impressao via modal.
	 */
	public void imprimirModal() {
		Map<String, Object> paramentros = null;

		if (!listaMembrosSelecionados.isEmpty()) {
			tipoMembro = "T";
			setListaResult(listaMembrosSelecionados);
		}

		if (relatorioAniversario) {
			setTipoImpressao(TIPO_IMPRESSAO_BASICA);
		}

		if (tipoImpressao.equals(TIPO_IMPRESSAO_BASICA)) {
			paramentros = super.montaParametrosApenasTopo();
		} else {
			paramentros = super.montaParametrosRelatorioConsulta();
		}
		// if(titulo.equals(""))
		// titulo = getRelatorioCorrente();
		paramentros.put("nomeIgreja", "RELATORIO");

		if (tipoMembro.equals(TIPO_MEMBRO)) {
			paramentros.put("tipoRelatorio", "Membros");
			paramentros.put("NOMEREL", !titulo.equals("") ? titulo : "MEMBROS");
			if (tipoImpressao.equals(TIPO_IMPRESSAO_BASICA)) {
				super.imprimir(getListaResult(), Constante.RELATORIO_MEMBRO_VISTANTE_BASICO,
						paramentros);
			} else if (tipoImpressao.equals(TIPO_IMPRESSAO_COMPLEATA)) {
				super.imprimir(getListaResult(), Constante.RELATORIO_MEMBRO, paramentros);
			}
		} else if (tipoMembro.equals(TIPO_VISITANTE)) {
			paramentros.put("tipoRelatorio", "Visitantes");
			paramentros.put("NOMEREL", !titulo.equals("") ? titulo : "VISITANTES");
			if (tipoImpressao.equals(TIPO_IMPRESSAO_BASICA)) {
				super.imprimir(getListaResult(), Constante.RELATORIO_MEMBRO_VISTANTE_BASICO,
						paramentros);
			} else if (tipoImpressao.equals(TIPO_IMPRESSAO_COMPLEATA)) {
				super.imprimir(getListaResult(), Constante.RELATORIO_VISITANTE, paramentros);
			}
		} else if (tipoMembro.equals(TIPO_TODOS)) {

			if (relatorioAniversario) {
				imprimirAniversarios(paramentros);
			} else if (tipoImpressao.equals(TIPO_IMPRESSAO_BASICA)) {
				paramentros.put("tipoRelatorio", "Membros e Visitantes");
				paramentros.put("NOMEREL", !titulo.equals("") ? titulo : "Membros e Visitantes");
				super.imprimir(getListaResult(), Constante.RELATORIO_MEMBRO_VISTANTE_BASICO,
						paramentros);

			} else {
				paramentros.put("tipoRelatorio", "Membros e Visitantes");
				super.imprimir(getListaResult(), Constante.RELATORIO_MEMBRO_Visitante, paramentros);
			}
		}
	}

	public boolean isDtNascimento() {
		return dtNascimento;
	}

	public boolean isExibirImprimir() {
		return exibirImprimir;
	}

	public boolean isNome() {
		return nome;
	}

	/**
	 * @return the relatorioAniversario
	 */
	public boolean isRelatorioAniversario() {
		return relatorioAniversario;
	}

	public boolean isRelPadrao() {
		return relPadrao;
	}

	public boolean isRelTipoMembro() {
		return relTipoMembro;
	}

	public void limpar() {
		limpaResultado();
		listaMembrosSelecionados = new ArrayList<MembroVo>();
		listaOpcao = new ArrayList<OpcaoPesquisaEnum>();
		listaParametros = new ArrayList<ParametroPesquisa>();
		parametroPesquisa = new ParametroPesquisa();
		listaParametros = new ArrayList<ParametroPesquisa>();

	}

	private void limpaResultado() {
		listaMembrosVos = new ArrayList<MembroVo>();
	}

	/**
	 */
	public void limparParametro() {
		String opcao = parametroPesquisa.getOpcao();
		if (opcao != null) {
			if (opcao.equals("")) {
				parametroPesquisa = new ParametroPesquisa();
			} else if (opcao.equals(OpcaoPesquisaEnum.NOME.getCodigo())
					|| opcao.equals(OpcaoPesquisaEnum.SEXO.getCodigo())
					|| opcao.equals(OpcaoPesquisaEnum.SEXO.getCodigo())) {
				parametroPesquisa.setDtPesquisa(null);
				parametroPesquisa.setDado("");
			}
		}
	}

	/**
	 * verifica se a funcao ja foi adicionada
	 * 
	 * @param funcoes
	 * @param funcaoAdicionar
	 * @return
	 */
	private boolean membroRepitido(List<MembroVo> membroVos, MembroVo membroVoAdicionar) {
		boolean jaExiste = false;
		long idMembro;
		long idMembroSelecionado = membroVoAdicionar.getCoSeqMembro() != null ? membroVoAdicionar
				.getCoSeqMembro() : membroVoAdicionar.getCoSeqVisitante();
		for (MembroVo mvs : membroVos) {
			idMembro = mvs.getCoSeqMembro() != null ? mvs.getCoSeqMembro() : mvs
					.getCoSeqVisitante();
			if (idMembro == idMembroSelecionado) {
				jaExiste = true;
				break;
			}
		}
		return jaExiste;
	}

	private void montaListaOpcoes() {
		listaOpcoes = new ArrayList<SelectItem>();
		listaOpcoes.add(new SelectItem(OpcaoPesquisaEnum.DATA_NASCIMENTO.getCodigo(),
				OpcaoPesquisaEnum.DATA_NASCIMENTO.getDescricao()));
		listaOpcoes.add(new SelectItem(OpcaoPesquisaEnum.NOME.getCodigo(), OpcaoPesquisaEnum.NOME
				.getDescricao()));
		listaOpcoes.add(new SelectItem(OpcaoPesquisaEnum.SEXO.getCodigo(), OpcaoPesquisaEnum.SEXO
				.getDescricao()));
	}

	/**
	 * monta lista com as opcoes de pesquisa para membro
	 */
	private void montaListaOpcoesMembro() {
		if (listaOpcoes == null) {
			listaOpcoes = new ArrayList<SelectItem>();
		} else if (!listaOpcoes.isEmpty()) {
			listaOpcoes.clear();
		}

		for (OpcaoPesquisaEnum operador : OpcaoPesquisaEnum.values()) {
			if (!operador.getCodigo().equals(OpcaoPesquisaEnum.DT_CADASTRO.getCodigo())) {
				listaOpcoes.add(new SelectItem(operador.getCodigo(), operador.getDescricao()));
			}
		}
	}

	/**
	 * monta lista com as opcoes de pesquisa para visitante
	 */
	private void montaListaOpcoesVistante() {
		if (listaOpcoes == null) {
			listaOpcoes = new ArrayList<SelectItem>();
		} else if (!listaOpcoes.isEmpty()) {
			listaOpcoes.clear();
		}

		listaOpcoes.add(new SelectItem(OpcaoPesquisaEnum.DATA_NASCIMENTO.getCodigo(),
				OpcaoPesquisaEnum.DATA_NASCIMENTO.getDescricao()));
		listaOpcoes.add(new SelectItem(OpcaoPesquisaEnum.NOME.getCodigo(), OpcaoPesquisaEnum.NOME
				.getDescricao()));
		listaOpcoes.add(new SelectItem(OpcaoPesquisaEnum.DT_CADASTRO.getCodigo(),
				OpcaoPesquisaEnum.DT_CADASTRO.getDescricao()));
		listaOpcoes.add(new SelectItem(OpcaoPesquisaEnum.SEXO.getCodigo(), OpcaoPesquisaEnum.SEXO
				.getDescricao()));
	}

	@Override
	protected Map<String, Object> montaParametrosRelatorioConsulta() {
		Map<String, Object> parametros = super.montaParametrosRelatorioConsulta();
		parametros.put("NOMEREL", Mensagem.getBundle().getString("titulo.relatorio.membro"));

		return parametros;
	}

	public void pesqOpcoesTipoMembro() {
		limpar();
		if (tipoMembro.equals("M")) {
			montaListaOpcoesMembro();
		} else if (tipoMembro.equals("V")) {
			montaListaOpcoesVistante();
		} else {
			montaListaOpcoes();
		}

		limpaResultado();
		if (!listaMembrosSelecionados.isEmpty()) {
			exibirImprimir = true;
		} else {
			exibirImprimir = false;
		}
	}

	public void pesquisar() {
		listaVisitantesVos = new ArrayList<MembroVo>();
		listaMembrosVos = new ArrayList<MembroVo>();
		if (tipoMembro.equals("M")) {
			listaMembrosVos = membroService.buscaDinamicaMembro(listaParametros,
					igreja != null ? igreja.getCoSeqIgreja() : null, status);
		} else if (tipoMembro.equals("V")) {
			listaVisitantesVos = visitanteService.buscaVisitanteDinamica(listaParametros,
					igreja != null ? igreja.getCoSeqIgreja() : null, status);
		} else {
			listaMembrosVos = membroService.buscaDinamicaMembro(listaParametros,
					igreja != null ? igreja.getCoSeqIgreja() : null, status);
			listaVisitantesVos = visitanteService.buscaVisitanteDinamica(listaParametros,
					igreja != null ? igreja.getCoSeqIgreja() : null, status);
		}

		listaMembrosVos.addAll(listaVisitantesVos);
		if (!listaMembrosVos.isEmpty()) {
			exibirImprimir = true;
		} else if (!listaMembrosSelecionados.isEmpty()) {
			exibirImprimir = true;
		} else {
			exibirImprimir = false;
		}

		Collections.sort(listaMembrosVos);
		if (listaMembrosVos.isEmpty()) {
			super.registroNaoEncontrado = true;
		}

	}

	/**
	 * pesquisa pelo aniversariante mensais
	 */
	private void pesquisarAniversariosMes() {
		listaVisitantesVos = new ArrayList<MembroVo>();
		listaMembrosVos = new ArrayList<MembroVo>();
		if (tipoMembro.equals("M")) {
			listaMembrosVos = membroService.buscarAniversariantesMes(Integer.valueOf(mes),
					igreja != null ? igreja.getCoSeqIgreja() : null);
		} else if (tipoMembro.equals("V")) {
			listaVisitantesVos = visitanteService.buscarAniversariantesMes(Integer.valueOf(mes),
					igreja != null ? igreja.getCoSeqIgreja() : null);
		} else {
			listaMembrosVos = membroService.buscarAniversariantesMes(Integer.valueOf(mes),
					igreja != null ? igreja.getCoSeqIgreja() : null);
			listaVisitantesVos = visitanteService.buscarAniversariantesMes(Integer.valueOf(mes),
					igreja != null ? igreja.getCoSeqIgreja() : null);
		}
		getListaMembrosVos().addAll(listaVisitantesVos);
		if (!listaMembrosVos.isEmpty()) {
			exibirImprimir = true;
		} else if (!listaMembrosSelecionados.isEmpty()) {
			exibirImprimir = true;
		} else {
			exibirImprimir = false;
		}

		Collections.sort(listaMembrosVos);
		if (listaMembrosVos.isEmpty()) {
			super.registroNaoEncontrado = true;
		}
	}

	/**
	 * realiza pesquisa simples
	 */
	public void pesquisarSimples() {
		listaVisitantesVos = new ArrayList<MembroVo>();
		listaMembrosVos = new ArrayList<MembroVo>();

		listaParametros = new ArrayList<ParametroPesquisa>();

		if (parametroPesquisa.getOpcao() != null
				&& (parametroPesquisa.getDado() != null || parametroPesquisa.getDtPesquisa() != null)) {
			getListaParametros().add(parametroPesquisa);
		}
		if (tipoMembro.equals("M")) {
			listaMembrosVos = membroService.buscaDinamicaMembro(listaParametros,
					igreja != null ? igreja.getCoSeqIgreja() : null, status);
		} else if (tipoMembro.equals("V")) {
			listaVisitantesVos = visitanteService.buscaVisitanteDinamica(listaParametros,
					igreja != null ? igreja.getCoSeqIgreja() : null, status);
		} else {
			listaMembrosVos = membroService.buscaDinamicaMembro(listaParametros,
					igreja != null ? igreja.getCoSeqIgreja() : null, status);
			listaVisitantesVos = visitanteService.buscaVisitanteDinamica(listaParametros,
					igreja != null ? igreja.getCoSeqIgreja() : null, status);
		}

		listaMembrosVos.addAll(listaVisitantesVos);

		if (!listaMembrosVos.isEmpty()) {
			exibirImprimir = true;
		} else if (!listaMembrosSelecionados.isEmpty()) {
			exibirImprimir = true;
		} else {
			exibirImprimir = false;
		}

		Collections.sort(listaMembrosVos);
		if (listaMembrosVos.isEmpty()) {
			super.registroNaoEncontrado = true;
		}
		listaParametros = new ArrayList<ParametroPesquisa>();
	}

	public void setDtNascimento(boolean dtNascimento) {
		this.dtNascimento = dtNascimento;
	}

	public void setDtPesquisa(Date dtPesquisa) {
		this.dtPesquisa = dtPesquisa;
	}

	public void setExibirImprimir(boolean exibirImprimir) {
		this.exibirImprimir = exibirImprimir;
	}

	public void setIgreja(Igreja igreja) {
		this.igreja = igreja;
	}

	public void setListaIgreja(List<Igreja> listaIgreja) {
		this.listaIgreja = listaIgreja;
	}

	public void setListaJuncoes(List<SelectItem> listaJuncoes) {
		this.listaJuncoes = listaJuncoes;
	}

	public void setListaMembros(List<Membro> listaMembros) {
		this.listaMembros = listaMembros;
	}

	public void setListaMembrosSelecionados(List<MembroVo> listaMembrosSelecionados) {
		this.listaMembrosSelecionados = listaMembrosSelecionados;
	}

	public void setListaMembrosVos(List<MembroVo> listaMembrosVos) {
		this.listaMembrosVos = listaMembrosVos;
	}

	public void setListaMes(List<SelectItem> listaMes) {
		this.listaMes = listaMes;
	}

	public void setListaOpcao(List<OpcaoPesquisaEnum> listaOpcao) {
		this.listaOpcao = listaOpcao;
	}

	public void setListaOpcoes(List<SelectItem> listaOpcoes) {
		this.listaOpcoes = listaOpcoes;
	}

	public void setListaOperacoes(List<SelectItem> listaOperacoes) {
		this.listaOperacoes = listaOperacoes;
	}

	public void setListaParametros(List<ParametroPesquisa> listaParametros) {
		this.listaParametros = listaParametros;
	}

	public void setListaVisitantesVos(List<MembroVo> listaVisitantesVos) {
		this.listaVisitantesVos = listaVisitantesVos;
	}

	public void setMembroVoSelecionado(MembroVo membroVoSelecionado) {
		this.membroVoSelecionado = membroVoSelecionado;
	}

	public void setMes(String mes) {
		this.mes = mes;
	}

	public void setNome(boolean nome) {
		this.nome = nome;
	}

	public void setParametroPesquisa(ParametroPesquisa parametroPesquisa) {
		this.parametroPesquisa = parametroPesquisa;
	}

	public void setParametroSelecionado(ParametroPesquisa parametroSelecionado) {
		this.parametroSelecionado = parametroSelecionado;
	}

	/**
	 * @param relatorioAniversario
	 *            the relatorioAniversario to set
	 */
	public void setRelatorioAniversario(boolean relatorioAniversario) {
		this.relatorioAniversario = relatorioAniversario;
	}

	public void setRelPadrao(boolean relPadrao) {
		this.relPadrao = relPadrao;
	}

	public void setRelTipoMembro(boolean relTipoMembro) {
		this.relTipoMembro = relTipoMembro;
	}

	public void setStatus(String status) {
		this.status = status;
	}

	public void setTipoAniversario(String tipoAniversario) {
		this.tipoAniversario = tipoAniversario;
	}

	public void setTipoImpressao(String tipoImpressao) {
		this.tipoImpressao = tipoImpressao;
	}

	public void setTipoMembro(String tipoMembro) {
		this.tipoMembro = tipoMembro;
	}

	public void setTipoPesquisa(String tipoPesquisa) {
		this.tipoPesquisa = tipoPesquisa;
	}

	public void setTipoRelatorio(String tipoRelatorio) {
		this.tipoRelatorio = tipoRelatorio;
	}

	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}

	private boolean validarCampos() {
		boolean camposValidos = true;
		if (tipoPesquisa.equals("A")) {

			if (parametroPesquisa.getOpcao().isEmpty()) {
				Mensagem.addWarn("erro.MSG_23");
				camposValidos = false;
			} else if (parametroPesquisa.getOpcao().contains("dt")) {
				if (parametroPesquisa.getDtPesquisa() == null) {
					Mensagem.addWarn("erro.MSG_17", "Data");
					camposValidos = false;
				}
			} else if (parametroPesquisa.getTpParamentro() == Constante.TIPO_PESQUISA_MATRICULA) {
				if (parametroPesquisa.getDado() == null || parametroPesquisa.getDado().equals("")) {
					Mensagem.addWarn("erro.MSG_17", "Matrícula");
					camposValidos = false;
				}
			}
		}

		return camposValidos;
	}

}
